const http = require("http")
const fs = require("fs")
const url = require("url")
const qs = require("querystring")

http.createServer((req,res)=>{
    if(req.url !== "/favicon.ico"){
        // 路由设定：
            // 数据请求：/api/xxx/xxxx
            // 文件请求：/xxx/xxx/xxx

        // console.log(req.url)
        // console.log(req.url.includes("/api"))
        if(req.url.includes("/api")){
            ajax(req, res);
        }else{
            file(req, res);
        }
    }
}).listen(81)

function ajax(req, res){
    // 获取前端发送的地址栏数据（get数据）
    // const urlObj = url.parse(req.url, true);
    // console.log(urlObj.query)
    // console.log("处理数据请求")
    
    // 获取前端发送的非地址栏数据（post数据）
    var str = "";
    // 非地址栏数据会多次触发req的data事件，每个data事件内只能拿到数据碎片
    req.on("data",(d)=>{
        // console.log(d)
        str += d;
    })
    // 地地址栏数据传输完成之后（所有的data事件执行完成之后），会触发end事件
    // 在end事件中查看data事件中的碎片组合，就是完整数据
    req.on("end", ()=>{
        console.log(qs.parse(str))
    })
    res.end();
}


function file(req, res){
    const urlObj = url.parse(req.url);
    fs.readFile("./www" + urlObj.pathname, (err,data)=>{
        if(err){
            res.write("404")
        }else{
            res.write(data)
        }
        res.end();
    })
}